package com.ims.core.doc.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ims.common.annotation.Excel;
import com.ims.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 发票采集明细对象 t_in_collect_entry
 *
 * @author IMS
 * @date 2024-11-10
 */
public class TInCollectEntry extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 采集ID */
    @Excel(name = "采集ID")
    private String collectId;

    /** 采集批次号 */
    @Excel(name = "采集批次号")
    private String collectNo;

    /** 行号 */
    @Excel(name = "行号")
    private Integer lineNo;

    /** 采集明细ID */
    @Excel(name = "采集明细ID")
    private String entryId;

    /** 采集时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "采集时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date collectTime;

    /** 客户ID */
    @Excel(name = "客户ID")
    private String custId;

    /** 客户 */
    @Excel(name = "客户")
    private String custName;

    /** 公司代码 */
    @Excel(name = "公司代码")
    private String siteCode;

    /** 公司 */
    @Excel(name = "公司")
    private String siteName;

    /** 发票类型代码 */
    @Excel(name = "发票类型代码")
    private String invoiceType;

    /** 发票类型 */
    @Excel(name = "发票类型")
    private String invoiceTypeName;

    /** 发票图片 */
    @Excel(name = "发票图片")
    private String invoiceUrl;

    /** 查验状态 */
    @Excel(name = "查验状态")
    private String checkStatusName;

    /** 入池状态代码 */
    @Excel(name = "入池状态代码")
    private Integer enterStatus;

    /** 入池状态 */
    @Excel(name = "入池状态")
    private String enterStatusName;

    /** 发票代码 */
    @Excel(name = "发票代码")
    private String invoiceCode;

    /** 发票号码 */
    @Excel(name = "发票号码")
    private String invoiceNo;

    /** 开票日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票日期", width = 30, dateFormat = "yyyy-MM-dd")
    private String invoiceDate;

    /** 金额(含税) */
    @Excel(name = "金额(含税)")
    private BigDecimal fee;

    /** 金额(不含税) */
    @Excel(name = "金额(不含税)")
    private BigDecimal feeWithoutTax;

    /** 税额 */
    @Excel(name = "税额")
    private BigDecimal tax;

    /** 采集来源代码 */
    @Excel(name = "采集来源代码")
    private Integer sourceType;

    /** 采集来源 */
    @Excel(name = "采集来源")
    private String sourceTypeName;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public Integer getLineNo() {
        return lineNo;
    }

    public void setLineNo(Integer lineNo) {
        this.lineNo = lineNo;
    }

    public void setCollectId(String collectId)
    {
        this.collectId = collectId;
    }

    public String getCollectId()
    {
        return collectId;
    }
    public void setCollectNo(String collectNo)
    {
        this.collectNo = collectNo;
    }

    public String getCollectNo()
    {
        return collectNo;
    }
    public void setEntryId(String entryId)
    {
        this.entryId = entryId;
    }

    public String getEntryId()
    {
        return entryId;
    }
    public void setCollectTime(Date collectTime)
    {
        this.collectTime = collectTime;
    }

    public Date getCollectTime()
    {
        return collectTime;
    }
    public void setCustId(String custId)
    {
        this.custId = custId;
    }

    public String getCustId()
    {
        return custId;
    }
    public void setCustName(String custName)
    {
        this.custName = custName;
    }

    public String getCustName()
    {
        return custName;
    }
    public void setSiteCode(String siteCode)
    {
        this.siteCode = siteCode;
    }

    public String getSiteCode()
    {
        return siteCode;
    }
    public void setSiteName(String siteName)
    {
        this.siteName = siteName;
    }

    public String getSiteName()
    {
        return siteName;
    }
    public void setInvoiceType(String invoiceType)
    {
        this.invoiceType = invoiceType;
    }

    public String getInvoiceType()
    {
        return invoiceType;
    }
    public void setInvoiceTypeName(String invoiceTypeName)
    {
        this.invoiceTypeName = invoiceTypeName;
    }

    public String getInvoiceTypeName()
    {
        return invoiceTypeName;
    }
    public void setInvoiceUrl(String invoiceUrl)
    {
        this.invoiceUrl = invoiceUrl;
    }

    public String getInvoiceUrl()
    {
        return invoiceUrl;
    }
    public void setCheckStatusName(String checkStatusName)
    {
        this.checkStatusName = checkStatusName;
    }

    public String getCheckStatusName()
    {
        return checkStatusName;
    }
    public void setEnterStatus(Integer enterStatus)
    {
        this.enterStatus = enterStatus;
    }

    public Integer getEnterStatus()
    {
        return enterStatus;
    }
    public void setEnterStatusName(String enterStatusName)
    {
        this.enterStatusName = enterStatusName;
    }

    public String getEnterStatusName()
    {
        return enterStatusName;
    }
    public void setInvoiceCode(String invoiceCode)
    {
        this.invoiceCode = invoiceCode;
    }

    public String getInvoiceCode()
    {
        return invoiceCode;
    }
    public void setInvoiceNo(String invoiceNo)
    {
        this.invoiceNo = invoiceNo;
    }

    public String getInvoiceNo()
    {
        return invoiceNo;
    }
    public void setInvoiceDate(String invoiceDate)
    {
        this.invoiceDate = invoiceDate;
    }

    public String getInvoiceDate()
    {
        return invoiceDate;
    }
    public void setFee(BigDecimal fee)
    {
        this.fee = fee;
    }

    public BigDecimal getFee()
    {
        return fee;
    }
    public void setFeeWithoutTax(BigDecimal feeWithoutTax)
    {
        this.feeWithoutTax = feeWithoutTax;
    }

    public BigDecimal getFeeWithoutTax()
    {
        return feeWithoutTax;
    }
    public void setTax(BigDecimal tax)
    {
        this.tax = tax;
    }

    public BigDecimal getTax()
    {
        return tax;
    }
    public void setSourceType(Integer sourceType)
    {
        this.sourceType = sourceType;
    }

    public Integer getSourceType()
    {
        return sourceType;
    }
    public void setSourceTypeName(String sourceTypeName)
    {
        this.sourceTypeName = sourceTypeName;
    }

    public String getSourceTypeName()
    {
        return sourceTypeName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("collectId", getCollectId())
            .append("collectNo", getCollectNo())
            .append("entryId", getEntryId())
            .append("collectTime", getCollectTime())
            .append("custId", getCustId())
            .append("custName", getCustName())
            .append("siteCode", getSiteCode())
            .append("siteName", getSiteName())
            .append("invoiceType", getInvoiceType())
            .append("invoiceTypeName", getInvoiceTypeName())
            .append("invoiceUrl", getInvoiceUrl())
            .append("checkStatusName", getCheckStatusName())
            .append("enterStatus", getEnterStatus())
            .append("enterStatusName", getEnterStatusName())
            .append("invoiceCode", getInvoiceCode())
            .append("invoiceNo", getInvoiceNo())
            .append("invoiceDate", getInvoiceDate())
            .append("fee", getFee())
            .append("feeWithoutTax", getFeeWithoutTax())
            .append("tax", getTax())
            .append("sourceType", getSourceType())
            .append("sourceTypeName", getSourceTypeName())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
